package com.yinuo.listener;

import com.yinuo.common.SystemWaiter;
import com.yinuo.common.SystemDict;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
import org.springframework.boot.context.event.ApplicationPreparedEvent;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextClosedEvent;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.ContextStartedEvent;
import org.springframework.context.event.ContextStoppedEvent;
import org.springframework.stereotype.Component;

/**
 * Created by gt.ao on 2018/8/20.
 */

@Component
@EnableAutoConfiguration
public class ConfigListener implements ApplicationListener {

    private Logger logger = LoggerFactory.getLogger(ConfigListener.class);

    @Override
    public void onApplicationEvent(ApplicationEvent event) {

        if (event instanceof ApplicationEnvironmentPreparedEvent) { // 初始化环境变量

        } else if (event instanceof ApplicationPreparedEvent) { // 初始化完成

        } else if (event instanceof ContextRefreshedEvent) { // 应用刷新

        } else if (event instanceof ApplicationReadyEvent) {// 应用已启动完成 打开浏览器
            String isOpenBrowserAfterStartup = SystemDict.getSystemDict("isOpenBrowserAfterStartup");
            if (Boolean.parseBoolean(isOpenBrowserAfterStartup)) {
                SystemWaiter.openBrowser(SystemDict.getSystemDict("indexUrl"));
            }
        } else if (event instanceof ContextStartedEvent) { //应用启动，需要在代码动态添加监听器才可捕获

        } else if (event instanceof ContextStoppedEvent) { // 应用停止

        } else if (event instanceof ContextClosedEvent) { // 应用关闭

        } else {
        }
    }
}
